﻿Imports System.Data
Imports System.Data.SqlClient
' NOTA: puede usar el comando "Cambiar nombre" del menú contextual para cambiar el nombre de clase "SeguridadEnvio" en el código, en svc y en el archivo de configuración a la vez.
Public Class SeguridadEnvio
    Inherits ConexionSQL
    Implements ISeguridadEnvio

    Public Sub DoWork() Implements ISeguridadEnvio.DoWork
    End Sub

    Function generarCodigoEncriptado(codVendedor As String, empresa As String) As String Implements ISeguridadEnvio.generarCodigoEncriptado
        Dim encriptado As String = ""

        Try
            If conectarSQL() = True Then
                Dim query As String = "DECLARE @CESE AS DATETIME " &
                                      "SET @CESE = (SELECT (CASE WHEN VEN_FechaCese IS NULL THEN GETDATE()	ELSE VEN_FechaCese END) " &
                                      "FROM Consultas..Vendedor " &
                                      "WHERE VEN_Codigo = @VEN AND VEN_Empresa = @EMP AND VEN_Estado = '1') " &
                                      "SELECT CONVERT(VARCHAR(32),HashBytes('MD5',CAST(DAY(@CESE) AS VARCHAR(50)) + VEN_Codigo + CAST(ISNULL(VEN_IMEI,0)/2 AS VARCHAR(50)) + " &
                                      "CAST(MONTH(@CESE) AS VARCHAR(50)) + CAST(ISNULL(VEN_IMEI,0)/2 AS VARCHAR(50)) + CAST(YEAR(@CESE)/2 AS VARCHAR(50))), 2) " &
                                      "AS Encriptacion " &
                                      "FROM Consultas..Vendedor " &
                                      "WHERE VEN_Codigo = @VEN AND VEN_Empresa = @EMP " &
                                      "AND VEN_Estado = '1'"

                Dim comando As New SqlCommand(query, cnn)
                With comando
                    .Parameters.AddWithValue("@VEN", codVendedor)
                    .Parameters.AddWithValue("@EMP", empresa)
                End With
                Dim adapter As SqlDataAdapter = New SqlDataAdapter(comando)
                Dim ds As New DataSet
                adapter.Fill(ds)

                encriptado = ds.Tables(0).Rows(0)("Encriptacion").ToString.Trim
            Else
                Return Nothing
            End If
        Catch ex As Exception
            Return Nothing
        Finally
            desconectarSQL()
        End Try

        Return encriptado
    End Function

End Class
